home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / glibc108.zip / glibc108 / io / sys / poll.h < prev    next >
C/C++ Source or Header  |  1994-05-11  |  3KB  |  66 lines

  1. /* Compatibility definitions for System V `poll' interface.
  2. Copyright (C) 1994 Free Software Foundation, Inc.
  3. This file is part of the GNU C Library.
  4.  
  5. The GNU C Library is free software; you can redistribute it and/or
  6. modify it under the terms of the GNU Library General Public License as
  7. published by the Free Software Foundation; either version 2 of the
  8. License, or (at your option) any later version.
  9.  
  10. The GNU C Library is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13. Library General Public License for more details.
  14.  
  15. You should have received a copy of the GNU Library General Public
  16. License along with the GNU C Library; see the file COPYING.LIB.  If
  17. not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  18. Cambridge, MA 02139, USA.  */
  19.  
  20. #ifndef    _SYS_POLL_H
  21. #define    _SYS_POLL_H
  22.  
  23. #include <sys/cdefs.h>
  24.  
  25. /* Data structure describing a polling request.  */
  26. struct pollfd
  27.   {
  28.     int fd;            /* File descriptor to poll.  */
  29.     short int events;        /* Types of events poller cares about.  */
  30.     short int revents;        /* Types of events that actually occurred.  */
  31.   };
  32.  
  33. /* Event types that can be polled for.  These bits may be set in `events'
  34.    to indicate the interesting event types; they will appear in `revents'
  35.    to indicate the status of the file descriptor.  */
  36. #define POLLIN        01              /* There is data to read.  */
  37. #define POLLPRI        02              /* There is urgent data to read.  */
  38. #define POLLOUT        04              /* Writing now will not block.  */
  39.  
  40. /* Event types always implicitly polled for.  These bits need not be set in
  41.    `events', but they will appear in `revents' to indicate the status of
  42.    the file descriptor.  */
  43. #define POLLERR         010             /* Error condition.  */
  44. #define POLLHUP         020             /* Hung up.  */
  45. #define POLLNVAL        040             /* Invalid polling request.  */
  46.  
  47. /* Canonical number of polling requests to read in at a time in poll.  */
  48. #define NPOLLFILE    30
  49.  
  50.  
  51. __BEGIN_DECLS
  52.  
  53. /* Poll the file descriptors described by the NFDS structures starting at
  54.    FDS.  If TIMEOUT is nonzero and not -1, allow TIMEOUT milliseconds for
  55.    an event to occur; if TIMEOUT is -1, block until an event occurs.
  56.    Returns the number of file descriptors with events, zero if timed out,
  57.    or -1 for errors.  */
  58.  
  59. extern int poll __P ((struct pollfd *__fds, unsigned long int __nfds,
  60.               int __timeout));
  61.  
  62. __END_DECLS
  63.  
  64. #endif    /* sys/poll.h */
  65.  
  66.